/**
 * Copyright &copy; 2013-2015 山东易科德软件有限公司   All rights reserved.
 */
package cn.net.ecode.modules.file.entity;

import java.io.File;

import cn.net.ecode.common.config.Global;
import cn.net.ecode.common.persistence.annotation.Id;

import org.hibernate.validator.constraints.Length;

import cn.net.ecode.common.persistence.DataEntity;
import cn.net.ecode.common.utils.FileUtils;

/**
 * 文件管理Entity
 * @author jiangwenchao
 * @version 2015-03-18
 */
public class FileEntity extends DataEntity<FileEntity> {
	
	private static final long serialVersionUID = 1L;
	private String fileId;		// 文件id
	private String filePath;		// 存库文件相对路径
	private String fileType;		// 文件类型
	private String fileSuffix;		// 文件扩展名
	private Long fileSize;		// 文件大小(单位B)
	private String fileMd5;		// 文件MD5
	
	public FileEntity() {
		super();
	}

	public FileEntity(String fileId){
		super();
		this.fileId = fileId;
	}

	@Id
	public String getFileId() {
		return fileId;
	}

	public void setFileId(String fileId) {
		this.fileId = fileId;
	}
	
	@Length(min=0, max=1000, message="存库文件相对路径长度不能大于 1000 个字符")
	public String getFilePath() {
		return filePath;
	}

	public void setFilePath(String filePath) {
		this.filePath = filePath;
	}
	
	@Length(min=0, max=200, message="文件类型长度不能大于 200 个字符")
	public String getFileType() {
		return fileType;
	}

	public void setFileType(String fileType) {
		this.fileType = fileType;
	}
	
	@Length(min=0, max=100, message="文件扩展名长度不能大于 100 个字符")
	public String getFileSuffix() {
		return fileSuffix;
	}

	public void setFileSuffix(String fileSuffix) {
		this.fileSuffix = fileSuffix;
	}
	
	public Long getFileSize() {
		return fileSize;
	}

	public void setFileSize(Long fileSize) {
		this.fileSize = fileSize;
	}
	
	@Length(min=0, max=64, message="文件MD5长度不能大于 64 个字符")
	public String getFileMd5() {
		return fileMd5;
	}

	public void setFileMd5(String fileMd5) {
		this.fileMd5 = fileMd5;
	}
	
	/**
	 * 获取下载文件路径
	 * @return
	 */
	public String getFileDownloadPath() {
		return FileUtils.path(Global.USERFILES_BASE_URL + File.separator 
				+ FileParms.FILEUPLOAD_BASE_URL + File.separator
				+ filePath + File.separator) + fileId + fileSuffix;
	}
}